require 'fileutils'

USE_STLPORT = true


def build_extension(name, arch)
  objects = []
  mkdir_p $tempdir unless File.exist? $tempdir

  mkdir_p $targetdir unless File.exist? $targetdir

  if ENV['RHO_PLATFORM'] == 'wm'
    args = []
    args << "/M4"
    args << name + ".sln"
    args << "\"Release|#{$sdk}\""
    cmdline = "\"" + $vcbuild + "\"" + ' ' + args.join(' ')
    puts cmdline
    puts `#{cmdline}`
    fail "[#{cmdline}]" unless $? == 0

    cp_r File.join($tempdir, "Release", name + ".lib"), $targetdir

  elsif ENV['RHO_PLATFORM'] == 'win32'
    args = []
    args << "/M4"
    args << name + ".sln"
    args << "\"Debug|Win32\""
    cmdline = "\"" + $vcbuild + "\"" + ' ' + args.join(' ')
    puts cmdline
    puts `#{cmdline}`
    fail "[#{cmdline}]" unless $? == 0

    cp_r File.join($tempdir, "Debug", name + ".lib"), $targetdir
  end

    cp_r File.join($tempdir, "Release", name + ".lib"), $targetdir
end

namespace "build" do
  task :config do
    $targetdir = ENV['TARGET_TEMP_DIR']
    raise "TARGET_TEMP_DIR is not set" if $targetdir.nil?
    $tempdir = ENV['TEMP_FILES_DIR']
    raise "TEMP_FILES_DIR is not set" if $tempdir.nil?
    $rootdir = ENV['RHO_ROOT']
    raise "RHO_ROOT is not set" if $rootdir.nil?

      $vcbuild = ENV['VCBUILD']
      raise "VCBUILD is not set" if $vcbuild.nil?
      $sdk = ENV['RHO_VSPROJ_SDK_PLATFORM']
      raise "SDK is not set" if $sdk.nil?

  end

  task :all => :config do

    build_extension('Videocapture', $arch)
  end
end

task :default => "build:all"
